1. Field of the Invention
This invention relates to display systems for computers and, more particularly, to methods and apparatus for accelerating the transfer of graphical information to frame buffers in a double buffered display system.
2. History of the Prior Art
Computer systems use a buffer memory called a frame buffer for storing data which is to be written to an output display. The information in the frame buffer is written to the display line-by-line generally beginning at the upper left-hand corner of the display and continuing to the lower right-hand corner. One frame of information is followed by the next so that thirty frames are furnished each second. As the picture in one frame changes to the picture in the next, continuous motion is presented. To accomplish this, a frame buffer must be continuously updated.
Typically, a frame buffer is constructed of video random access memory arrays which differ from conventional random access memory arrays by having a first random access port at which the memory may be read or written and a second line-at-a-time serial output port which furnishes pixel data to the circuitry controlling the output display. Such a construction allows information to be written to the frame buffer while the frame buffer continually furnishes information to the output display.
The ability of a frame buffer to both receive information and transfer that information to an output display simultaneously causes certain difficulties. If information being furnished to the display changes during the time that a single frame is being furnished, then the display may present information from more than one time period. This is called a frame tear. Frame tears are only important where motion from one frame to the next causes the elements presented on the display to be obviously distorted. When this occurs, the distortion caused may be extremely disconcerting to the viewer.
To eliminate frame tears, certain more expensive computer systems utilize what is referred to as double buffering. Double buffering provides two frame buffers both of which furnish pixel information to the circuitry controlling the output display. One of the frame buffers is selected to provide information for a particular frame on the output display, and no information is provided to that frame buffer while the information it stores is being transferred for display. The other frame buffer, in the meantime, receives all of the new information to be displayed. When the display is to be changed, the second frame buffer is selected to transfer pixel information to the output display and the first buffer to receive new pixel information. In this manner, no pixel information is ever written to a frame buffer while the information in the frame buffer is being written to the display. The effect of this is that frame tears cannot occur.
However, even though frame tears do not occur with double buffering, the video random access memory used for frame buffer memory is not being utilized as fully as it would be in a system using a single frame buffer because at no time is a buffer both being updated and furnishing information to the output display. Video random access memory is expensive, and it would be desirable to better utilize that memory in a double buffered display system.